Recursive Function Definition for Types with Binders

نویسنده

  • Michael Norrish
چکیده

This work describes the proof and uses of a theorem allowing definition of recursive functions over the type of λ-calculus terms, where terms with bound variables are identified up to α-equivalence. The theorem embodies what is effectively a principle of primitive recursion, and the analogues of this theorem for other types with binders are clear. The theorem’s side-conditions require that the putative definition be well-behaved with respect to fresh name generation and name permutation. A number of examples over the type of λ-calculus terms illustrate the use of the new principle.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Programming Inductive Proofs - A New Approach Based on Contextual Types

In this paper, we present an overview to programming with proofs in the reasoning framework, Beluga. Beluga supports the specification of formal systems given by axioms and inference rules within the logical framework LF. It also supports implementing proofs about formal systems as dependently typed recursive functions. What distinguishes Beluga from other frameworks is that it not only represe...

متن کامل

Resolving Inductive Definitions with Binders in Higher-Order Typed Functional Programming

This paper studies inductive definitions involving binders, in which aliasing between free and bound names is permitted. Such aliasing occurs in informal specifications of operational semantics, but is excluded by the common representation of binding as meta-level λabstraction. Drawing upon ideas from functional logic programming, weion. Drawing upon ideas from functional logic programming, we ...

متن کامل

Type Inference for Bimorphic Recursion

This paper proposes bimorphic recursion, which is restricted polymorphic recursion such that every recursive call in the body of a function definition has the same type. Bimorphic recursion allows us to assign two different types to a recursively defined function: one is for its recursive calls and the other is for its calls outside its definition. Bimorphic recursion in this paper can be neste...

متن کامل

Autosubst: Automation for de Bruijn Substitutions

Formalizing syntactic theories with variable binders is not easy. We present Autosubst [1], a library for the Coq proof assistant to automate this process. Given an inductive definition of syntactic objects in de Bruijn [7] representation augmented with binding annotations, Autosubst synthesizes the substitution operations and automatically proves the basic lemmas about substitutions. Our core ...

متن کامل

Wander types : A formalization of coinduction - recursion ∗

Wander types are a coinductive version of inductive-recursive definitions. They are defined by simultaneously specifying the constructors of the type and a function on the type itself. The types of the constructors can refer to the function component and the function itself is given by pattern matching on the constructors. Wander types are different from inductive-recursive types in two ways: t...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2004